Adaptive communication handling

ABSTRACT

A method can include accessing, from memory, sensor data in response to detecting an incoming communication to a given communication endpoint, the sensor data representing at least one of a condition of the given communication endpoint or a condition of an operating environment associated with the given communication endpoint. The method can also include applying a profile to the sensor data to determine whether to extend or truncate a duration that the incoming communication at the given communication endpoint. The profile may be learned based on the sensor data associated with one or more previous incoming communication being answered or not answered. The method further includes adapting the duration that the incoming communication is offered at the given communication endpoint based on the applied profile.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 15/496,148, filed Apr. 25, 2017, entitled “ADAPTIVECOMMUNICATION HANDLING”, which is a continuation of U.S. patentapplication Ser. No. 14/553,407, filed Nov. 25, 2014, entitled “ADAPTIVECOMMUNICATION HANDLING”, the entire contents of each of theabove-identified application is incorporated herein by reference.

TECHNICAL FIELD

This disclosure relates to adaptive communication handling.

BACKGROUND

Various forms of telecommunication systems enable progression of callforwarding to enable an incoming call to ring a fixed number of times atone communication endpoint before forwarding the call to anotherdestination or voicemail. These systems are typically referred to asring-no-answer or forward-no-answer systems. In some cases, the systemcan be configured to ring at more than one endpoint simultaneously.Since, the number of or timing of rings at each endpoint is fixed, theduration typically is chosen as a compromise between providing enoughtime to allow the phone to be answered but short enough for the callerto be offered a way to either leave a message or contact anotherindividual before hanging up. While solutions do exist where the phoneis automatically answered for an incoming call, such an approach deniesthe user control over whether to accept or deny the call.

SUMMARY

This disclosure relates to adaptive communication handling.

As one example, a method can include accessing, from memory, sensor datain response to detecting an incoming communication to a givencommunication endpoint. The sensor data represents at least one of acondition of the given communication endpoint or a condition of anoperating environment associated with the endpoint. The method can alsoinclude analyzing the sensor data to determine endpoint condition datacorresponding to at least one of a willingness or availability of a userto answer the incoming communication at the given communicationsendpoint. The method can also include adapting a duration that theincoming communication is offered to the given communication endpointbased on the endpoint condition data.

As another example, one or more non-transitory computer-readable mediumcan store instructions executable by one or more processors forperforming a method. The method can include accessing pre-alert sensordata in response to an incoming communication. The pre-alert sensor datarepresents a state of a given communication endpoint before generatingan alert for the incoming communication. The method can also includeaccessing intra-alert sensor data captured in response to the incomingcommunication to represent a state of the given communication endpointwhile generating the alert therefor. The method can also includeanalyzing intra-alert sensor data relative to the pre-alert sensor datato determine a condition of the given communication endpoint associatedwith the incoming communication. The method can also include adapting aduration that the incoming communication is offered to the givencommunication endpoint based on the analyzing.

As yet another example, a system can include at least one sensor toprovide sensor data representing at least one of a condition of a givencommunication endpoint to which an incoming communication is directed ora condition of an environment associated with the given communicationendpoint while the incoming communication is being offered to the givencommunication endpoint. An analyzer can analyze the sensor data todetermine endpoint condition data representing whether a user is tryingto answer the incoming communication being offered to the givencommunication endpoint. Call control can adjust a duration that theincoming communication is offered to the given communication endpointbased on the endpoint condition data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow diagram depicting a method to provide for adaptivecommunication handling.

FIG. 2 depicts an example of a communication system implementingadaptive communication handling.

FIG. 3 depicts an example of another communication system implementingadaptive communication handling.

FIG. 4 depicts an example of an analyzer and routing control that canimplement at least a portion of adaptive communication handling.

DETAILED DESCRIPTION

This disclosure relates to adaptive communication handling, such asbased on sensor data acquired for a given communications endpoint towhich an incoming communication is directed. For example, the sensordata associated with the endpoint can be analyzed to determine acondition of the given communication endpoint. In some examples, theendpoint condition can relate to an availability and/or willingness of auser to answer an incoming communication derived from the sensor data.In additional or alternative examples, the endpoint condition can relateto an inability and/or refusal to answer the incoming communicationderived from the sensor data. The determined endpoint condition thus canbe employed to adapt a duration (e.g., ring count or ring time) that theincoming communication is offered to a communication endpoint beforebeing redirected to another endpoint.

In some examples, the duration that the incoming communication isoffered to the given endpoint can be extended to provide additional timeto allow the user to answer the incoming communication, such as inresponse to inferring the user's willingness and/or availability toanswer the communication based on the determined condition of theendpoint. In other examples, the duration that the incomingcommunication is offered to the given endpoint can be truncated (e.g.,shortened) to expedite redirecting the communication to the otherendpoint, such as in response to inferring the user's unwillingness orinability to answer the incoming communication base on the determinedcondition of the endpoint. As disclosed herein, the analysis of sensordata can be implemented by the endpoint and/or an associated callcontrol, which may reside in a server to which the endpoint is connectedvia a network. Additionally, the sensor data can be collected by one ormore sensors internal to the endpoint device and/or external to theendpoint. The different types of sensors that may be available orutilized for implementing adaptive call handling can vary depending onthe type and configuration of each respective endpoint to which theincoming communication can be offered.

FIG. 1 is a flow diagram depicting an example of an adaptivecommunication handling method 100. While, for purposes of simplicity ofexplanation, the method of FIG. 1 is shown and described as executingserially, it is to be understood and appreciated that such method is notlimited by the illustrated order, as some aspects could, in otherexamples, occur in different orders and/or concurrently with otheraspects from that disclosed herein. Moreover, not all illustratedfeatures may be required to implement a method. The methods or portionsthereof can be implemented as instructions stored in a non-transitorymachine readable medium as well as be executed by one or more processingresources (e.g., processor cores) of one or more computers, for example.

The method begins at 102 such as involving operation of a givencommunication endpoint that is adapted to receive an incomingcommunication. The given communication endpoint can be a mobile device(e.g., smart phone, tablet, personal computer, laptop computer or thelike), a desktop telephone, a soft phone running on a computer (i.e., aspecial purpose computer), a video conferencing terminal, or anotherdevice that is capable of bi-directional communication of audio, video,data or a combination thereof in response to connecting with theincoming communication. In other examples disclosed herein, an endpointcan also be a voicemail box implemented in a voicemail service. Theparticular endpoints to which the communication can be routed can dependon an escalation chain that has been established for a user and/orendpoint number to which the incoming communication is called. While forsimplicity of explanation, the incoming communication is often describedin the context of a call (e.g., a telephone call), it is understood thatthe communication is not limited to any one type of media, but insteadcan involve virtually any one or more type of media (e.g., audio, video,still images or graphics, text or the like).

As an example, call control operating in a communications network canoffer the incoming call to the given endpoint by signaling to the givenendpoint according to an established signaling protocol. Various typesof signaling protocols can be utilized to offer the incoming call to thegiven endpoint, which can vary depending upon the type of endpoint andthe network (or networks) via which call control offers the incomingcommunication. For example, a signaling protocol, such as the sessioninitiation protocol (SIP) or cellular communications protocol, can beutilized to signal to the given endpoint in incoming call over a datacommunications or an internet protocol (IP) voice communicationsnetwork. A ring back response can be provided to calling party (e.g.,from the call control or given endpoint) while the communication isbeing offered to the given endpoint.

At 104, endpoint sensor data is received. The endpoint sensor data canbe provided from one or more sensors (see, e.g., sensor 170, 172, 270 or272). The sensors can be part of the endpoint itself (e.g., internalsensors integrated in the endpoint) and/or the sensors can be externalto the endpoint. For example, an external sensor can communicate sensedinformation to the endpoint via a local communications link (e.g., aphysical or wireless link) between the endpoint and the sensor. Thetypes of sensors that can be utilized to provide the endpoint data canvary depending upon the type of endpoint device.

By way of example, where the given endpoint is a mobile wirelesstelecommunications device (e.g., cellular telephone or smart phone),internal types of sensors, which can be integrated in the mobile device,can include one or more of the following: a global position sensor(GPS), velocity sensor, one or more motion and/or one or more inertialsensors (e.g., an accelerometer, a gyrometer, a magnetometer and/or atilt sensor), a light sensor (e.g., a photo detector), a proximitysensor, a microphone, near field sensors and the like. Examples ofexternal sensors (e.g., sensing devices) that can be utilized to providethe sensor data can include one or more of the following: an activitysensor, heart rate sensor, or other health sensor. Each external sensorcan be connected to provide the sensed information to the given endpointvia a communications link, which can be wireless (e.g., Bluetooth,wireless local area network, or the like) or include a physical link.The external sensors can be stand alone sensors or be integrated in amulti function device (e.g., smart watch or other device), each of whichmay be paired to the endpoint device via a wired or wirelesscommunication link.

For the example of a docking station or a soft phone communicationendpoint, the device on which the soft phone is executing (e.g., acomputer) can include peripherals or user input components operative todetect user interaction in response to a user input device (e.g., ainteraction via a mouse, touch screen, camera, microphone or keyboard).Thus, the user interaction that provides the sensor data can be inresponse to user interaction with the device itself. In other examples,the sensor data can be generated by a device that is known to be near bythe docking station or soft phone, such as a computer or device that canbe connected to a computer via communications link. The sensor data canbe generated by another device to indicate user activity has beendetected nearby the soft phone or docking station, which can becorrelated in time with the incoming communication to the endpoint. Datafrom any one or more such sensors, which can vary depending upon thetype of communication endpoint, thus can be received at 104 and storedin corresponding memory. The sensor data can be raw data from thesensors or it can be processed data.

As used herein, the sensor data would not include detecting that theuser has answered the call in response to a user input. Instead, if theincoming communication is answered at the given endpoint while it isbeing offered (before the original or adapted ring count or ring timeexpires), the answering of the call can interrupt and terminate themethod 100.

At 106, an endpoint condition can be determined (e.g., by analyzer 184,284, 300) based on analysis of the sensor data (received at 104). Theendpoint condition determined at 106 can correspond to a conditionindicating a user's willingness or availability to answer thecommunication. Alternatively, the determined endpoint condition canindicate the user's inability or refusal to answer the call. Forexample, the endpoint condition can correspond to a change inposition/orientation of the endpoint during the incoming communication.Additionally or alternatively, the endpoint condition can represent achange in environment for the endpoint that is detected during theincoming communication.

At 108 a determination is made as to whether the determined endpointcondition satisfies predetermined adaption criteria. The determinationat 108 can include a comparison between the determined endpointcondition (derived from the sensor data) and one or more storedprofiles. As an example, the stored profile can include thresholdcriteria that describes a set of one or more sensed parameters and/orchanges in sensed parameters known to be consistent with a useranswering or trying to answer an incoming communication for a given typeand configuration of endpoint. There can be one or more profile for eachuser behavior that is to be discriminated at each endpoint. The behaviorprofile can be programmed by a user or an administrator, for example,for use at one or more user endpoints. Additionally or alternatively,the profiles for a given endpoint can be learned over time such as basedon analysis of historical sensor data acquired when an incoming call isanswered or not answered, for example.

For example, a comparison between the stored profile and the determinedendpoint condition can provide an indication that the user is likelytrying to answer the incoming communication at the given endpoint, suchas by the endpoint condition substantially matching or exceeding athreshold level set by the stored profile. As an alternative example,the stored profile can include criteria that describe a set of one ormore endpoint conditions known to be consistent with a user refusing toanswer or being unable to answer the incoming communication. In thisalternative example, the comparison between the stored profile and thedetermined endpoint condition can provide an indication of whether auser's behavior sufficiently indicates a refusal or inability to answerthe incoming communication.

By way of further example, for a mobile device, assume that the mobiledevice begins within a pocket or other stored position (e.g., mounted onor in a protective holster). The stored profile can describe theendpoint condition based on sensor data representing an initial,pre-alert condition of the mobile device that reflects being in a pocketor other stored position. For instance, the initial pre-alert conditionfor the profile (e.g., representing being stored in pocket or in apurse) can represent sensor state information for the givencommunication endpoint before up to slightly after generating the alert,such as based on sensor data that includes data from a light sensordata, proximity sensor data, acceleration data, and gyrometer data.Another profile can be established based on the same or a subset of thesame sensor data to indicate that the user is taking steps towardanswering the incoming communication at the mobile device (e.g., mobiletelephone). For instance, such the sensor data can be acquired while theuser is physically removing the phone from the pocket or purse while thealert is being generated for the incoming communication. A plurality ofdifferent profiles can be created, each of which can specify differentthreshold conditions that can be applied to the endpoint condition thatis determined from sensor data captured before and during offering ofthe incoming communication at the given endpoint. In some examples, thestarting pre-alert condition of the endpoint device can be used toselect a subset of available profiles that are each applied to determinewhether criteria is met to trigger adjustment of the ring time or count.

In response to the adaption criteria being met at 108, indicating thatthe duration that adaption criteria has been met, the method can proceedfrom 108 to 110. At 110, the duration (e.g., ring count or ring time)that the incoming communication is offered to the given endpoint isadapted. As disclosed herein, in some examples, the ring time can beextended such as to defer redirecting (e.g., transfer) of the incomingcall from the given endpoint to another endpoint. Such other endpoint,for example could include another endpoint device (e.g.,telecommunications equipment) having a different telephone number or avoice mailbox associated with the given endpoint to which the incomingcommunication was offered.

In other examples, the adaption criteria can additionally oralternatively relate to a user's inability or refusal to answer theincoming call. Where the endpoint condition determined at 106 isconsistent with such inability or refusal to answer, such criteria canbe met thereby proceeding from 108 to 110. When the criteria relates tothe refusal or inability to the user being able to answer the call, theadapting of the ring time at 110 can include truncating (e.g.,shortening) prematurely the duration for offering the incomingcommunication to the given endpoint. Truncating the duration results inredirecting the incoming communication sooner than an establishedduration (e.g., set by an authorized user or administrator) or if theduration is extended.

Additionally, in response to determining to adapt the duration that theincoming communication is offered to the given endpoint, at 111, themethod can include sending a message to the calling party, which canoccur in parallel with the adaption of the duration. The message can beprovided via the same or a different form of communication than theincoming communication. For example, the message can be sent as a textmessage or email, whereas the incoming communication is a telephonecall. Additionally, the automated communication can be generated tospecify a reason why the communication is being adapted, such as basedon the determined endpoint condition. As an example, if the duration isbeing truncated to expedite redirecting the incoming communication, themessage at 111 can indicate that the user is unable answer thecommunication generally or provide a particular reason. As anotherexample, if the duration is being extended, the message can indicatethat the user is in the process of answering the communication.

At 112, a determination is made as to redirect the communication. Forexample, the determination at 112 can be made by determining whether theduration (e.g., an adapted version or the original established duration)has expired. Thus, if the ring time has been extended or increased, theincoming communication (e.g., incoming call) will continue being offeredat the given endpoint for a longer period of time for the initialestablished duration (e.g., a fixed value for the ring time). In otherexamples, where the ring time has been adapted to truncate the durationfor offering the incoming communication at the given endpoint, the ringtime can be reduce to something that is less than the establishedduration, such as to cause immediate expiration of the timer. If theduration has not expired or the incoming communication is not otherwiseredirected, the process can continue to loop back to 104 to repeat theforegoing process until it is determined to trigger a redirect. Inresponse to determining to redirect the incoming communication (e.g., ifthe ring time has expired or a redirect for the communication istriggered by other means), the method can proceed from 112 to 114.

At 114 the method can redirect the call from the given endpoint toanother endpoint. As disclosed herein, the other endpoint can be anothercommunications device, such as can be associated with the same user towhich the given endpoint is associated. In other examples, the otherendpoint can be associated with a different user, such as can bespecified in an escalation plan, which can be stored in memory used by acommunication controller. For instance, the other endpoint can include aphone number for an assistant or receptionist or other specified user.As yet another example, the other endpoint can be a voicemail box forthe given endpoint.

FIG. 2 depicts an example of a system 150 that can implement adaptivecall handling. The system 150 includes a plurality of endpoint resources(also referred to as endpoints) 152 and 154, indicated at endpoint 1 andone or more other endpoints. While two such endpoint resources areillustrated in the example of FIG. 2, any number of two or more endpointresources can be implemented in the system 150. The endpoint resources152 and 154 can provide for interactive forms of communications, such asaudio communications (telephone calls, voicemail), audio and videocommunications (e.g., video conferencing, video voicemail) and/or datacommunications (e.g., short message service, instant message, datacollaboration). Thus, the endpoint resources 152 and 154 can beimplemented as a variety of different types of hardware and/or software,such as IP phones, desk phones, soft phones, video phones, smart phones,cellular telephones, voice conferencing devices, computers, internetappliances, services running in a cloud as well as combinations andparts thereof.

The system 150 also includes a call control 156 that is configured toperform call handling for incoming and outgoing communications accordingto rules that specify at least two endpoints (e.g., endpoints 152 and154) and a logical order for directing incoming calls for each endpoint.In some examples, the call control 156 can be implemented as part of aprivate branch exchange (PBX) (e.g., an IP PBX) for controlling callhandling in a private enterprise communications network, correspondingto an enterprise that is administered and/or operated by or on behalf ofa private entity (e.g., a company, group of users, or other serviceprovider). In other examples, the call control 156 can operate within aservice provider's public network (e.g., Verizon, AT&T or T-Mobile orother common carrier), which can provide cellular wirelesscommunications and/or public switched telephone services over physicalconnections. As yet another example, the call control 156 can reside ineach endpoint (e.g., endpoints 152 and 154) itself, such as inpeer-to-peer VoIP systems. Still further, the functionality of the callcontrol 156 could be distributed between endpoints 152 and 154 and othercomponents (e.g., hardware and/or software) operating in the system 150.

For the example, where the system 150 operates as a privatecommunications network, the call control 156 can send and receivecommunications to and from endpoint resources 152 and 154, whichresources are registered in the private network, as well as controlrouting, distributing and managing communications within the privatenetwork. Whether a private or public network, the communications system150 can be configured to implement packet switched calls, such asimplementing voice over internet protocol (VoIP), circuit switched callsor a combination of packet and circuit switched communications via thenetwork 162.

The call control 156 includes includes call logic 158 to implement thecall routing functions for incoming and outgoing calls to and from theendpoints 152 and 154. For instance, the call logic is programmed toperform call routing according to an escalation chain. The escalationchain can include rules that define circumstances to redirect theincoming communication from a given endpoint 152 to another endpoint 154if a call is not answered within a predetermined duration (e.g., definedby an established ring time or ring count). The predetermined durationcan be programmed as part of call data (e.g., ring time value) 160 thatis utilized by the call logic 158 for implementing the call routing andhandling functions in the escalation chain for a given user or telephonenumber. The predetermined duration thus can have a value implemented incall data 160 can be set in response to a user input, such as by anadministrator of the system 150 or another authorized user. In someexamples, the call logic 158 can be configured to offer an incoming callto more than one endpoint concurrently as part of a group of endpoints(e.g., a hunt group) assigned to receive incoming calls directed to atelephone number (e.g., a public number, a private extension) to whichthe incoming call was placed.

The call control 156 is in communication with each of the endpoints 152and 154 via a network 162. The network 162 can include a combination ofone or more networks capable of transferring communication signals. Forexample, the network 162 can include a local area network (LAN) and/or awide area network (WAN) (e.g., the Internet, cellular telephonenetwork(s). The network 162 thus can include a public switched telephonenetwork (PSTN) and/or one or more other networks.

By way of example, the endpoint 152 can be implemented as a mobiledevice (e.g., a cellular telephone or smart phone) that includes aprocessor 164 and memory 166, which stores data and machine readableinstructions executable by the processor. In some examples, the endpoint152 can be a multifunction device that can operate according to aplurality of communication modes, such as including operating as awireless IP phone over a data communication network as well as acellular telephone that communicates wirelessly using a cellular voiceand/or data communications.

In the example of FIG. 2, the call control 156 employs the call logic158 to route incoming calls to the endpoint 152 via one or morecommunication networks (corresponding to the network 162) in which theendpoint 152 is configured to communicate. For example, the call control156 can be implemented by a cellular telephone service provider forimplementing adaptive handling with respect to subscribers in itstelephone network including its endpoint 152. In other examples, thecall control 156 can be implemented as part of a private network in aninternational protocol (IP) private branch exchange (PBX) such as can bein a business or other enterprise.

The endpoint 152 can include one or more sensors 170 configured to senseconditions associated with the endpoint 152 for the example of a smartphone or other mobile device, the sensors 170 can include accelerationsensors, gyrometer, proximity sensor, light sensor (e.g., one or morephotodetectors), audio sensors (e.g., microphone), GPS sensors as wellas other data that can be derived from the operation of the endpoint 152in the communication system 150. One or more external sensors 172 canalso be connected to the endpoint 152. The external sensors can beconnected to the endpoint 152 via a sensor interface 174. For example,the sensor interface 174 can include a wireless interface, such asBluetooth or other short-range communication standard. In otherexamples, the external sensors 172 can be physically connected (e.g.,via an electrical connector) to the sensor interface 174 forcommunicating sensor data. Data from each of the sensors 170 and/or 172can be stored in the memory 166 as sensor data 176. While the externalsensor(s) 172 is demonstrated as providing sensor data to the endpoint152, in some examples, the external sensor(s) 172 can provide sensordata directly to the call control via the network 162 via acommunications link (e.g., a physical or wireless connection—not shown).Other information associated with operation of the endpoint 152 orderived from operating parameters can also be stored as sensor data 176in the memory 166. For example, the sensor data 176 can include or bederived from information collected from a part of a component resource,such as keystroke data from a keypad or touch screen, audio data from amicrophone, image data from a camera, as well as signal strength orlocation codes from a cellular service provider.

The memory 166 can also include a sensor capture module 178 that can beprogrammed to aggregate the data from the sensors 170 and 172 to providethe corresponding sensor data that is relevant to the adaptivecommunication handling. For example, the sensor capture module cancollect a set of the sensor data from a selected set of the sensors 170,172 at prescribed sampling times, which can be relative to detecting anincoming communication at the endpoint 152. The sensor capture module178 can also normalize the data or otherwise pre-process the data tofacilitate the adaptive call handling functionality disclosed herein.

As an example, in response to detecting an incoming call being receivedat the endpoint 152, the sensor capture module 178 can be programmed tostore the sensor data 176 from a set of one or more sensors 170 and 172.For instance, the memory 166 can include communication logic 180 thatdetects the incoming communication via a corresponding communicationsystem 182 and triggers the sensor capture module 178 to collectinformation from the set of sensors and/or selected endpoint operatingdata. As disclosed herein, the set of sensors and selected operatingdata can be selected to provide information with a behavior (e.g., userand/or endpoint behavior) consistent with trying to answer the incomingcommunication or, in other examples, behavior consistent with an expressrefusal or unwillingness to answer the incoming communication.

As a further example, the call logic 158 of the call control 156 cansignal the communication system 182 via the network 162 for offering theincoming call to the endpoint 152. In response to the initial offeringfrom the call logic, the sensor capture module 178 can be activated tocapture one or more time instances of the sensor data 176 prior toannouncing the incoming call, such as by ringing the call at theendpoint 152. As used herein, “ringing” can refer to any meansimplemented at the endpoint 152 for alerting a user of the incomingcall, such as an audible signal (e.g., tone, music, etc) via aloudspeaker at the endpoint, a visual indicator (e.g., flashing a light,activating a screen, etc.) or a tactile indicator (e.g, vibrating thedevice) or the like. The sensor data 176 stored to reflect a conditionof the endpoint prior to generating an alert for the incoming call,which can be referred to as pre-alert sensor data, provides a point ofreference to a condition of the endpoint and/or user behavior prior tobeing alerted by the ringing of the incoming call. The pre-alert sensordata can be triggered in response to detecting the incoming call and/orthe alert being generated, for example. The sensor capture module 178can also store sensor data 176 during the ringing of the incoming call,which can be referred to as intra-alert sensor data. The sensor capturemodule 178 can trigger the capture of the intra-incoming call sensordata at one or more instances while the incoming call is being offeredand presented to the user via the endpoint before the call is answered.The intra-incoming call sensor data provides an indication of one ormore conditions of the endpoint 152 and/or user behavior responsive tothe ringing of the incoming call.

An analyzer 184 analyzes the sensor data 176 to determine a condition ofthe endpoint and/or user behavior in response to the incoming call. Theendpoint condition, for example, can provide an indication of a user'sability or willingness to answer the call based on the sensor data. Forexample, the analyzer determines that sensor data indicates the endpointhas been removed from a storage position (e.g., detected by proximitysensor and/or light sensor) and is then moved (e.g., as detected bymotion and/or inertial sensors) during the ringing of the call. Othersensor data can be utilized to determine that a user is trying to answerthe call such that the duration that the call is being offered at theendpoint 152 should be extended.

Alternatively or additionally, the analyzer 184 can evaluate the sensordata 176 collected during the ringing of the call to determine that theendpoint condition provides an indication of a user's inability orrefusal to answer the incoming call. For example, the analyzer 184determines that sensor data indicates the endpoint device has beenreplaced back into the storage position after previously being detectedas removed (e.g., detected by proximity sensor and/or light sensor).Additionally or alternatively, the analyzer 184 can determine that auser has interacted with the endpoint 152 via a user interface (e.g,button, keypad, touch screen, etc.) in a way other than to answer thecall. Thus, the analyzer 184 can infer from such user interactioncaptured in the sensor data that the user does not wish to answer theincoming call, such that the duration that the call is being offered atthe endpoint 152 should be truncated and redirected to another endpoint154.

In some examples, the analyzer can evaluate the sensor data 176, whichcan include pre-incoming call data and/or intra-incoming call data, toautomatically determine to truncate the ringing of incoming call at theendpoint 152. As an example, it may be known that use of a given mobileendpoint may be geographically restricted or even prohibited undercertain conditions. For instance, it may be illegal or otherwiseundesirable to use a mobile telephone or communicate using textmessaging in certain locations (e.g., schools, hospitals, corporatemeeting rooms) or while driving through restricted zones (e.g., schoolzones or certain municipalities). The policies associated with suchprohibitions can be stored as rules implemented by the analyzer 184 andcan be user programmable or set to default policies by the call control,for example. Thus, the analyzer can determine that the endpoint 152 ismoving at a particular speed (e.g., indicative of driving) through arestricted zone (e.g., based on GPS data and/or cellular operating dataindicating location). When the endpoint condition indicates thatanswering the incoming communication is currently restricted, theanalyzer can determine the incoming communication should be truncatedand redirected to the other endpoint 154.

In some examples, when the endpoint condition indicates that answeringthe incoming communication is currently restricted, the analyzer cantrigger an automated communication (e.g., a message) that is sent to thecalling party. The automated communication can be provided via the sameor a different form of communication than the incoming communication.Additionally, the automated communication can be generated to specify areason why the communication was not answered directly by the user.

The resulting endpoint condition determined by the analyzer 184 cancorrespond to the analysis data that can be sent (e.g., as an adaptsignal request) to the call control 156 via a communication link. Thecommunication link can include a path from the communication system 182via the network 162 to the call control 156. In response to the adaptsignal request, the call logic 158 can include an adapt function 186 toadjust the duration (e.g., ring count or ring time) that the incomingcall is offered to the endpoint 152. The adapt function 186 can adapt toextend or truncate the duration based on adaption instructions specifiedin the adapt signal request, for example.

In some examples, the adapt function 186 can extend the duration inresponse to the adapt signal request specifying an increased ring time,such as in response to detecting an endpoint condition that indicatesthe user is trying to answer the incoming call. In other examples, theadapt function 186 can truncate the duration in response to the adaptsignal request specifying a reduction in the ring time, such as wherethe detected endpoint condition indicates the user is trying to refusethe incoming call or if the call may be geographically restricted at theendpoint.

As a further example, the endpoint 152 can include a user interface 188that a user can employ to interact with the endpoint. Such userinteraction can include answering the call by pressing a talk or ONbutton, picking up a receiver from an ON-hook to an OFF-hook position orthe like, which can vary depending on the type of endpoint. In responseto the user interface 188 indicating that the user has answered thecall, the communication system 182 can provide a call-answered responseback to the call control 156, and the incoming call can be connectedwith the endpoint 152. If the ring time, whether adapted or the original(pre-adapted) ring time that is programmed via the call logic 158,expires before the call has been answered via the user interface 188,the call logic 158 at the call control 156 can redirect or transfer theincoming call to another endpoint 154 via the endpoint. As disclosedherein, the next endpoint 154 can be another communications device (oranother telephone number) that is specified in an escalation chain orthe endpoint 154 can correspond to a voice mailbox associated with theendpoint 152. If the endpoint is another device, it can be configured tofacilitate adaptive call handing similar to as disclosed with respect tothe endpoint. The sensor data utilized at the other endpoint 154 toimplement the adaptive call handling can be the same or different fromthe sensor data employed at the endpoint 152.

Additionally, more than one adapt signal request can be provided to thecall logic 158 during a given incoming call at the endpoint 152, and thecall logic thus can adapt the duration more than once during a givencall. For instance, the adapt function can extend the ring time for anincoming call in response to a first adapt signal request, and thentruncate the ring time in response to a second request that is receivedwhile the call is still be offered to the endpoint. This can correspondto a situation where a user is alerted to the call and removes themobile endpoint from a stored position (e.g., in a pocket), whichresults in adapting to extend the ring time. Upon viewing calleridentification, the user decides to not answer the call or otherwisedeclines the call, which results in adapting to truncate the remainingring time that had previously been extended. However, this affords theuser the opportunity to answer the call or not answer the call.

FIG. 3 depicts an example of a system 250 implementing adaptive callhandling. The system 200 is similar to the system 150 disclosed withrespect to FIG. 2, and includes similar components that are identifiedin FIG. 3 using the same reference numbers, increased by adding 100, toindicate corresponding functionality. Accordingly, reference can be madeback to FIG. 2 for additional information about the common componentsand their respective features. In the example system 200 of FIG. 3, someof the functionality has been distributed to call control 256.Specifically, the analyzer has been implemented at the call control(instead of at the endpoint itself as in the example of FIG. 2).

Briefly stated, sensor capture module 278 causes sensor data to becollected similarly to the example of FIG. 2. However, selected sensordata is provided to the call control and stored in memory as endpointsensor data 290. The sensor data 290 that is provided to the callcontrol 256 can be the same or different from the sensor data 176 (FIG.2). Analyzer 284 is implemented as part of the call logic 258 todetermine a condition of the endpoint based on evaluation of the sensordata 290, such as disclosed with respect to FIG. 2. The adapt function286 can process the endpoint condition data for one or more set of thesensor data to adjust the duration (e.g., ring time or count) that theincoming communication is presented to the endpoint 252, such as toextend the duration or truncate the duration according to the endpointcondition data. Once the duration expires, whether adapted duration ornot, the call logic 258 can redirect the incoming communication toanother endpoint 254, such as disclosed herein.

While the examples of FIGS. 2 and 3 demonstrate the analyzer implementedin either the endpoint or the call control, the functionality of theanalyzer could be distributed so that a portion of the analyzerfunctionality is implemented at the endpoint and another portion of theanalyzer functionality is implemented at the call control. In thisalternative example, the analyzer thus can be distributed among atdifferent nodes in the communications system.

FIG. 4 depicts an example of an analyzer 300 that can implement adaptivecall handling. The analyzer, for example, can correspond to the analyzer184 or 284 disclosed with respect to FIG. 2 or 3, respectively. Theanalyzer 300 includes sensor data 302 that can be received from a sensorcapture module 178 of FIG. 2 or 278 of FIG. 3. As mentioned, theanalyzer 300 can be implemented in an endpoint or in call control or bedistributed between both an endpoint and call control.

In the example of FIG. 4, the sensor data 302 includes pre-incoming callsensor data 304 as well as intra-incoming call sensor data 306. Thepre-alert sensor data 304 can include a snap-shot of sensor data at aninstance prior to generating an alert to announce an incomingcommunication (e.g., telephone call) to a user at the endpoint (e.g.,via an alert generator for an audible, visual and/or tactile alert). Theaccess to the pre-alert sensor data 304, which is acquired and stored inmemory prior to the incoming communication, thus can be triggered inresponse to receiving signaling identifying the incoming communication.The intra-alert sensor data 306 can include one or more data sets forthe same sensors as provided in the pre-alert sensor data 304 while thealert is being generated for the incoming call at the endpoint (e.g.,during call-ringing). Thus, the intra-alert sensor data 306 can includea set of sensor data sampled at one or more intervals while the incomingcall is being offered at the endpoint, but prior to being answered inresponse to a user input. Thus, differences between the intra-alertsensor data 306 and the pre-alert call sensor data 304 thereby reflectchanges in operation of the endpoint and/or user behavior presumably inresponse to the incoming communication. Similar differences can existbetween the sequence of intra-incoming call data acquired over timewhile the incoming call is being offered at the endpoint beforeultimately connected, redirected to another endpoint or is terminated bythe calling party. Thus, the intra-alert sensor data can be stored toprovide state information for the given communication endpoint whilealerting the user of the incoming call.

The analyzer 300 can include an adaption engine 310 that is programmedto evaluate the sensor data 302 to determine an endpoint condition,which may indicate adaption of the duration that the incomingcommunication is offered to the endpoint. For example, the adaptionengine 310 can include a comparator 316 to compare the intra-incomingcall data 306 with the pre-incoming call sensor data 304 to ascertainchanges in the sensor data and thereby indicate a corresponding changein one or more conditions for the endpoint. Additionally oralternatively, the comparator 316 can compare intra-incoming call data306 obtained at two or more different time instances to ascertainchanges at the endpoint. The results of the comparison between the data304 and 306 and/or between subsequent intra-call data 306 can be storedin memory and be evaluated to ascertain the endpoint condition.

In some examples, the adaption engine 310 can include one or moreadaption profiles, demonstrated as a truncate profile 312 and an extendprofile 314. The extend profile 314 can be applied to ascertain whetherthe sensor data is consistent with an endpoint condition where a user isavailable and/or willing to answer the incoming communications.Similarly, the truncate profile 312 can be applied to ascertain whetherthe sensor data is consistent with an endpoint condition where a userhad interacted with the endpoint in a manner to indicate a refusal toanswer the incoming communication or if the endpoint condition meets ageospatial restriction for answering an incoming communication.

For example, one or more of the profiles 312 and 314 can be applied toboth the pre-alert sensor data 304 and the intra-alert sensor data 306.In other examples, one or both profiles can be applied to results of acomparison (by comparator 316) between the pre-incoming call sensor data304 and the intra-alert sensor data 306. The extend profile can evaluateeach of the data individually or collectively based upon a comparisonbetween the two respective data sets 304 and 306. The truncate profile312 can include a plurality of profiles to ascertain the condition ofthe endpoint before and during the incoming call. For example, one ormore truncate profiles can be provided for detecting a user's refusal toanswer the incoming communication and one or more profiles can beprovided for detecting different geospatial restrictions.

Each of the profiles 312 and 314 can be pre-programmed with values for aset of sensors determined to correlate with a known endpoint condition.The values can include default values for a global set of usersaccording to sensors associated with each of the different endpoints. Inother examples, the values for a given profile can be user and endpointspecific, such as can be learned by monitoring sensor values when one ormore incoming communications are answered by the user at the respectiveendpoint as well as for instances when one or more other communicationsare explicitly refused by the user. The refusal can be indicated inresponse to a user input activating a button or touch screen interfaceto deny the communication. In other examples, the explicit refusal canbe inferred from sensor data indicating user behavior consistent withviewing the device and then returning the device to a stored position(e.g., in a pocket, purse or device holder).

As a further example, the adaption engine 310 can employ the comparator316 to compare the extend profile 314 with respect to the sensor data302 and in turn generate an adapt request to call logic 320 to extendthe incoming communication based on determining that the sensor data 302sufficiently matches the extend profile 314 (e.g., within a predefinedstatistical threshold). The comparator 316 can also compare the sensordata 302, including the pre-alert and the intra-alert sensor data 304and 306, with respect to the truncate profile 312. In response to thecomparator 316 determining that the sensor data is consistent with apre-programmed truncate profile, indicating a user's inability orrefusal to answer the incoming call, the comparator can provide an adaptrequest signal to the call logic 320 to truncate the duration that theincoming communication is offered at the given endpoint.

The call logic 320 can include rules associated with the routing andhandling of the incoming communication to the endpoint. The call logic320 can also implement the extension or truncation of the ring time inresponse to an adapt request signal from the adaption engine 310. Thecall logic 320 can also include an escalation chain for each of aplurality of endpoints that specifies a list of endpoints and an orderto which the incoming call is to be redirected. In some examples, thecall logic 320 further can specify one or more simultaneous endpoints towhich a given incoming call can be routed simultaneously at any stage ofthe escalation chain. In a simplified example, the escalation chaincould include a given endpoint as the primary and voicemail box as thenext endpoint. In other examples, more detailed escalation chains andconditional logic can be implemented.

The adaptive call handing disclosed herein (e.g., with respect to FIGS.1-4) can leverage existing or specially designed sensors to detect abehavior consistent with a user trying to answer an incomingcommunication provide information (e.g., an adapt request signal) backto a call controller to provide the user more time to answer thecommunication before transferring it to another endpoint (e.g., anothertelephone or voicemail). Since the user is given more time, the user canmake an informed decision on whether or not to answer the call.

In view of the foregoing structural and functional description, thoseskilled in the art will appreciate that portions of the systems andmethod disclosed herein may be embodied as a method, data processingsystem, or computer program product such as a non-transitory computerreadable medium. Accordingly, these portions of the approach disclosedherein may take the form of an entirely hardware embodiment, an entirelysoftware embodiment (e.g., in a non-transitory machine readable medium),or an embodiment combining software and hardware. Furthermore, portionsof the systems and method disclosed herein may be a computer programproduct on a computer-usable storage medium having computer readableprogram code on the medium. Any suitable computer-readable medium may beutilized including, but not limited to, static and dynamic storagedevices, hard disks, optical storage devices, and magnetic storagedevices.

Certain embodiments have also been described herein with reference toblock illustrations of methods, systems, and computer program products.It will be understood that blocks of the illustrations, and combinationsof blocks in the illustrations, can be implemented bycomputer-executable instructions. These computer-executable instructionsmay be provided to one or more processor of a general purpose computer,special purpose computer, or other programmable data processingapparatus (or a combination of devices and circuits) to produce amachine, such that the instructions, which execute via the processor,implement the functions specified in the block or blocks.

These computer-executable instructions may also be stored incomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory result in an article of manufacture including instructions whichimplement the function specified in the flowchart block or blocks. Thecomputer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the functions specified in theflowchart block or blocks.

What have been described above are examples. It is, of course, notpossible to describe every conceivable combination of components ormethodologies, but one of ordinary skill in the art will recognize thatmany further combinations and permutations are possible. Accordingly,the disclosure is intended to embrace all such alterations,modifications, and variations that fall within the scope of thisapplication, including the appended claims. As used herein, the term“includes” means includes but not limited to, the term “including” meansincluding but not limited to. The term “based on” means based at leastin part on. Additionally, where the disclosure or claims recite “a,”“an,” “a first,” or “another” element, or the equivalent thereof, itshould be interpreted to include one or more than one such element,neither requiring nor excluding two or more such elements.

What is claimed is:
 1. A method, comprising: accessing, from memory,sensor data in response to detecting an incoming communication to agiven communication endpoint, the sensor data representing at least oneof a condition of the given communication endpoint or a condition of anoperating environment associated with the given communication endpoint;applying a profile to the sensor data to determine whether to extend ortruncate a duration that the incoming communication at the givencommunication endpoint, the profile being learned based on the sensordata associated with one or more previous incoming communication beinganswered or not answered; and adapting the duration that the incomingcommunication is offered at the given communication endpoint based onthe applied profile.
 2. The method of claim 1, further comprisingstoring pre-alert sensor data in the memory prior to receiving theincoming communication to provide state information for the givencommunication endpoint before generating an alert at the givencommunication endpoint for the incoming communication, the duration thatthe incoming communication is offered at the given communicationendpoint being adapted based on the pre-alert sensor data.
 3. The methodof claim 2, further comprising: analyzing the sensor data to determinean endpoint condition corresponding to at least one of a willingness oravailability of a user to answer the incoming communication at the givencommunication endpoint; and adapting the duration that the incomingcommunication is offered at the given communication endpoint based onthe endpoint condition.
 4. The method of claim 3, further comprisingstoring intra-alert sensor data in the memory in response to theincoming communication to provide state information for the givencommunication endpoint while alerting the user of the incomingcommunication, wherein the endpoint condition is determined based on adifference between the pre-alert sensor data and the intra-alert sensordata.
 5. The method of claim 3, further comprising redirecting theincoming communication from another communication endpoint back to thegiven communication endpoint in response to determining the endpointcondition specifies a behavior consistent with answering the incomingcommunication at the given communication endpoint before the incomingcommunication is answered and connected at the other communicationendpoint.
 6. The method of claim 3, further comprising: storing theprofile that represents sensor data acquired during behavior associatedwith answering a plurality of incoming communications at the givencommunication endpoint; and applying the stored profile to the sensordata stored in response to the incoming communication to determine theendpoint condition.
 7. The method of claim 1, further comprising storingintra-alert sensor data in the memory to provide state information forthe given communication endpoint while alerting a user of the incomingcommunication at the given communication endpoint, the intra-alertsensor data including a record for at least one previous incomingcommunication, wherein the endpoint condition is determined based onbased on a difference between the intra-alert sensor data that isobtained during the incoming communication and the intra-alert sensordata for the at least one previous incoming communication.
 8. The methodof claim 1, wherein the profile is an endpoint-specific profile thatdepends on which sensors are active at each of a plurality of endpointsassociated with a user to which the incoming communication is intended.9. The method of claim 1, further comprising at least one of receivingthe sensor data from at least one sensor that is integral within thegiven communication endpoint and receiving the sensor data from at leastone other sensor via a communications link, the at least one othersensor being external to the given communication endpoint.
 10. Themethod of claim 1, further comprising: connecting the givencommunication endpoint with the incoming communication if the incomingcommunication is answered in response to a user input before theduration expires; and redirecting the incoming communication to anotherendpoint in response to the duration expiring before the incomingcommunication is answered at the given communication endpoint.
 11. Themethod of claim 1, further comprising sending a message to a callingparty to indicate that the incoming communication is being adapted orthat answering is currently restricted, the message being the same ordifferent based on how the incoming communication is initiated.
 12. Themethod of claim 1, further comprising: offering the incomingcommunication simultaneously to multiple endpoints; and applying theprofile and adapting the duration that the incoming communication isbeing offered at each of the multiple endpoints.
 13. A communicationssystem, comprising: at least one sensor to provide sensor datarepresenting at least one of a condition of a given communicationendpoint to which an incoming communication is directed or a conditionof an environment associated with the given communication endpoint whilethe incoming communication is being offered at the given communicationendpoint; an adaption engine to apply a profile to the sensor data todetermine whether to extend or truncate a duration that the incomingcommunication is offered at the given communication endpoint, theprofile being learned based on sensor data values associated with aprevious incoming communication being answered or not answered; and callcontrol to adapt the duration that the incoming communication is offeredat the given communication endpoint based on the applied profile. 14.The communication system of claim 13, further comprising: an analyzer toanalyze the sensor data and determine endpoint condition datarepresenting an extent to which a user is trying to answer the incomingcommunication being offered at the given communication endpoint; and thecall control further to adapt the duration that the incomingcommunication is offered at the given communication endpoint based onthe endpoint condition data.
 15. The system of claim 14, wherein thesensor data comprises: pre-alert sensor data captured from the at leastone sensor before generating an alert at the given communicationendpoint in response to the incoming communication, the pre-alert sensordata representing sensor state information for the given communicationendpoint before generating the alert; and intra-alert sensor datacaptured from the at least one sensor while generating the alert inresponse to the incoming communication, wherein the analyzer determinesthe endpoint condition data based on a comparison between the pre-alertsensor data and the intra-alert sensor data.
 16. The system of claim 14,wherein the call control is further to connect the given communicationendpoint with the incoming communication if the incoming communicationis answered, in response to a user input, before the duration expires,and wherein the call control redirects the incoming communication toanother endpoint in response to the duration expiring before theincoming communication is answered at the given communication endpoint.17. The system of claim 14, wherein the sensor data comprisesintra-alert sensor data captured in response to the incomingcommunication, the intra-alert sensor data including a record for atleast one previous incoming communication and a current incomingcommunication, wherein the analyzer determines the endpoint conditiondata based on based on a comparison of the intra-alert sensor data thatis obtained during the current incoming communication and theintra-alert sensor data for at least one previous incomingcommunication.
 18. The system of claim 14, wherein the call controlextends the duration in response to determining that the endpointcondition data indicates that the user is trying to answer the incomingcommunication being offered at the given communication endpoint, andwherein the call control truncates the duration if the endpointcondition data indicates that the user has refused to answer theincoming communication.
 19. The system of claim 13, further comprisingan endpoint resource to send a message to a calling party to indicatethat the incoming communication is being adapted or that answering iscurrently restricted, the message being the same or different based onhow the incoming communication is initiated.
 20. The system of claim 13,further comprising call logic to offer the incoming communicationsimultaneously to multiple endpoints, the call control to adapt theduration that the incoming communication is offered at each of themultiple endpoints.